docs: sphinx-extensions: make rstFlatTable work with docutils 0.13
authorDmitry Shachnev <mitya57@debian.org>
Sun, 18 Dec 2016 10:11:46 +0000 (13:11 +0300)
committerBen Hutchings <ben@decadent.org.uk>
Wed, 4 Jan 2017 19:39:36 +0000 (19:39 +0000)
In docutils 0.13, the return type of get_column_widths method of the
Table directive has changed [1], which breaks our flat-table directive
and leads to a TypeError when trying to build the docs [2].

This patch adds support for the new return type, while keeping support
for older docutils versions too.

[1] https://sourceforge.net/p/docutils/patches/120/
[2] https://sourceforge.net/p/docutils/bugs/303/

Signed-off-by: Dmitry Shachnev <mitya57@debian.org>
Gbp-Pq: Topic bugfix/all
Gbp-Pq: Name docs-sphinx-extensions-make-rstFlatTable-work-with-d.patch

Documentation/sphinx/rstFlatTable.py

index 26db852e3c745ed9b4e134198b3ea716552633f6..99163598f18be519d94cc8559cb330a9157a5d52 100644 (file)
@@ -151,6 +151,11 @@ class ListTableBuilder(object):
     def buildTableNode(self):
 
         colwidths    = self.directive.get_column_widths(self.max_cols)
+        if isinstance(colwidths, tuple):
+            # Since docutils 0.13, get_column_widths returns a (widths,
+            # colwidths) tuple, where widths is a string (i.e. 'auto').
+            # See https://sourceforge.net/p/docutils/patches/120/.
+            colwidths = colwidths[1]
         stub_columns = self.directive.options.get('stub-columns', 0)
         header_rows  = self.directive.options.get('header-rows', 0)